﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ERP.Manager.DataProvider;
using ERP.Manager.DataEntity;
using ERP.Manager.SQLServerProvider;
namespace ERP.Manager.BusinessServices
{
    public class UserinfoServices
    {
        private readonly IUserRepository userRepository;
        public UserinfoServices() { }
        public UserinfoServices(IUserRepository userRepository)
        {
            this.userRepository = userRepository;
        }
        #region 用户登录的方法
        public bool userLogin(string userName, string password)
        {
            UserInfo user = getUserByName(userName);
            if (user == null || user.password != password)
            {
                return false;
            }
            return true;
        }
        #endregion

        #region 添加用户信息的方法
        public int addUser(UserInfo user)
        {
            return userRepository.addUser(user);
        }
        #endregion

        #region 根据用户编号删除用户信息的方法
        public int DeleteUserinfo(UserInfo user)
        {
            return userRepository.DeleteUserinfo(user);
        }
        #endregion

        #region 修改用户信息的方法
        public int UpdateUserinfo(UserInfo user)
        {
            return userRepository.UpdateUserinfo(user);
        }
        #endregion

        #region 根据用户名取该用户详细信息
        public UserInfo getUserByName(string userName)
        {
            return userRepository.getUserByName(userName);
        }
        #endregion

        #region 查询所有用户信息的方法
        public List<UserInfo> getAllUsers()
        {
            return userRepository.getAllUsers();
        }
        #endregion

        #region 根据编号查询用户的详细信息的方法
        public UserInfo DetailUserinfo(string userId)
        {
            return userRepository.getAllUsers().Find(user => user.userId == userId);
        }
        #endregion

        #region 根据姓名查询用户的详细信息的方法
        public UserInfo DetailUserinfousername(string username)
        {
            return userRepository.getAllUsers().Find(user => user.userName == username);
        }
        #endregion

        #region 根据用户编号查询用户密码是否有效
        public UserInfo Detailuserpassword(string userid, string password)
        {
            return userRepository.getAllUsers().Find(user => user.userId == userid || user.password == password);
        }
        #endregion

        #region 根据部门编号查询用户姓名
        public List<UserInfo> ALLDepartmentid_userName(DepartmentInfo depatmentid)
        {
            return userRepository.ALLDepartmentid_userName(depatmentid);
        }
        #endregion

        #region 分页显示数据的方法
        public List<UserInfo> getAllUsersPagecount(int pagecount)
        {
            return userRepository.getAllUsersPagecount(pagecount);
        }
        #endregion

        #region 得到所有用户条数信息
        public int getAllUsersCount()
        {
            return userRepository.getAllUsers().Count;
        }
        #endregion
    }
}
